package com.fau.cm.service;

import java.util.List;

import com.fau.cm.entity.MedicalAdmin;
import com.fau.cm.entity.MedicalEnterpriseExtension;
import com.fau.cm.entity.MedicalEnterpriseQueue;

/**
 * @desc 业务系统与软交换交互接口 
 * @author kangyj
 * @datetime 2014年12月24日,上午11:23:57
 */
public interface IAlternatelyManagerService {

	/**
	 * @desc 绑定分机
	 * @param username 工号
	 * @param extenNumId 分机号
	 * @param queue 队列号
	 * @author kangyj
	 * @datetime 2014年12月24日,上午11:57:49
	 */
	public void loginExt(String username, String extenNumId, String queue);
	
	/**
	 * @desc 退出登录
	 * @param username 用户名
	 * @param extenNumId 分机号
	 * @param queue 队列
	 * @author kangyj
	 * @datetime 2015年2月4日,上午9:27:57
	 */
	public void loginOutExt(String username, String extenNumId, String queue);
	
	/**
	 * @desc 页面刷新登录分机
	 * @param admin
	 * @return
	 * @author kangyj
	 * @datetime 2015年1月28日,下午3:59:27
	 */
	public String findExtQueue(MedicalAdmin admin);
	
	/**
	 * @desc 查询当前企业分机
	 * @param eid 企业id
	 * @return
	 * @author kangyj
	 * @datetime 2015年1月28日,下午4:05:20
	 */
	public String findExtension(String eid);
	
	/**
	 * @desc 查询分机呼入、呼出数量、时长
	 * @param extension 分机号
	 * @return
	 * @author kangyj
	 * @datetime 2015年1月29日,下午2:45:28
	 */
	public List<Object> getExtensionCall(String extension);
	
	/**
	 * @desc 查询不在当前队列的分机号
	 * @param queueName 队列号
	 * @param 企业id
	 * @return
	 * @author kangyj
	 * @datetime 2015年1月30日,下午2:05:59
	 */
	public List<MedicalEnterpriseExtension> findNoExtension(String queueName, String eid);
	
	/**
	 * @desc 队列添加分机 
	 * @param extension 分机号
	 * @param queueName 队列号
	 * @author kangyj
	 * @datetime 2015年2月1日,下午8:34:38
	 */
	public void addExtension(String extension, String queueName);
	
	/**
	 * @desc 从队列移除分机
	 * @param extension 分机号
	 * @param queueName 队列号
	 * @author kangyj
	 * @datetime 2015年2月1日,下午8:36:55
	 */
	public void removeExtension(String extension, String queueName);
	
	/**
	 * @desc 查询当前登录用户分机
	 * @param userId 当前用户id
	 * @return
	 * @author kangyj
	 * @datetime 2015年2月3日,上午10:44:49
	 */
	public String findCurExtension(String userId);
	
	/**
	 * @desc 查询所有队列
	 * @param admin 当前登录用户
	 * @return
	 * @author kangyj
	 * @datetime 2015年2月5日,下午2:03:51
	 */
	public List<MedicalEnterpriseQueue> findAllQueue(MedicalAdmin admin);
	
	/**
	 * @desc 查询分机是否已被登录
	 * @param extension
	 * @return
	 * @author kangyj
	 * @datetime 2015年3月7日,下午6:52:45
	 */
	public MedicalAdmin findExtensionOnline(String extension);
	
}
